The information technology revolution over the past several decades has resulted in the digitization of massive amounts of data and widespread user access to many different types of computing devices. For example, more than 500 million people worldwide currently use spreadsheets and other two-dimensional (2D) arrangements of data items on various types of computing devices, and in a wide variety of application contexts, for organizing, analyzing, manipulating, storing, and presenting various types of data in an editable tabular format. These people include students, consumers, and a myriad of information workers (also known as knowledge workers) having diverse backgrounds such as engineers, scientists, software developers, accountants, human resource and marketing managers, underwriters, financial analysts, and sales professionals, to name a few. Numerous spreadsheet applications are available. Spreadsheets and other 2D data layouts are also utilized within numerous other types of applications such as word processing applications, email applications, database management applications, calendar management applications, web browser applications, and various mobile applications.
Many different types of data can be organized, analyzed, manipulated and stored in spreadsheets. Examples of such data-types include text, numeric values, currency values, date and time values, functions, and images. Spreadsheets store data in one or more 2D arrays of cells which are known as worksheets, where each worksheet is organized in rows and columns. Each cell in each worksheet of a given spreadsheet can store a given text string, or numeric value, or currency value, or date value, or time value. Each cell in each worksheet of the spreadsheet can also store a given user-defined function that automatically calculates and displays a value that is based on the contents of one or more other cells in the spreadsheet (in other words, the contents of a given cell can be based on the contents of one or more other cells). This function can include a wide variety of different types of computational functions, computational operators, and conditional expressions. As such, a given cell in a given worksheet can reference one or more other cells in the worksheet, or one or more other cells in one or more other worksheets. A user of a spreadsheet can thus interactively edit (e.g., make changes to) any data that is stored in the spreadsheet and observe the effects on calculated values in the spreadsheet.
Given the foregoing, it will be appreciated that spreadsheets represent a major source of editable, computer-based data. It will also be appreciated that complex structures of multi-dimensional (e.g., hierarchical or tree-shaped) data can be stored in spreadsheets.